﻿#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include<string.h>

#define INIT_CAPACITY 2 //初始化的容量
#define MULTIPLE 2  //扩容的倍数


typedef int SLDataType;
//顺序表
typedef struct SeqList
{
	int size;
	int capacity;
	SLDataType* data;
}SL;

//初始化和销毁
void SLInit(SL* ps);

void SLDestroy(SL* ps);

//尾插/尾删
void SLPushBack(SL* ps, SLDataType data);
void SLPopBack(SL* ps);

//头插/头删
void SLPushFront(SL* ps, SLDataType data);
void SLPopFront(SL* ps);

//指定位置之前插⼊ / 删除数据
void SLInsert(SL* ps,int pos, SLDataType data);
void SLErase(SL* ps, int pos);

// 查找对应的数据，找到就返回对应的下标，找不到就返回-1
int SLFind(const SL* ps, SLDataType data);

//打印数据
void Print(const SL* ps);